package com.cool.cloud.utils;
import com.alibaba.fastjson.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.cool.cloud.config.AlipayConfig;
import com.cool.cloud.entity.AlipayBean;
import org.springframework.beans.factory.annotation.Autowired;

public class AlipayUtil {

	@Autowired
	private static AlipayConfig PropertiesConfig;

	public static String connect(AlipayBean alipayBean) throws AlipayApiException {

		System.out.println("参数中的alipayBean是否为空：" + alipayBean);

		//1、获得初始化的AlipayClient
		AlipayClient alipayClient = new DefaultAlipayClient(
				PropertiesConfig.getKey("gatewayUrl"),//支付宝网关
				PropertiesConfig.getKey("app_id"),//appid
				PropertiesConfig.getKey("merchant_private_key"),//商户私钥
				"json",
				PropertiesConfig.getKey("charset"),//字符编码格式
				PropertiesConfig.getKey("alipay_public_key"),//支付宝公钥
				PropertiesConfig.getKey("sign_type")//签名方式
		);
		//2、设置请求参数
		AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
		//页面跳转同步通知页面路径
		alipayRequest.setReturnUrl(PropertiesConfig.getKey("return_url"));
		alipayRequest.setNotifyUrl(PropertiesConfig.getKey("notify_url"));
		// 服务器异步通知页面路径
		//alipayRequest.setNotifyUrl(PropertiesConfig.getKey("notify_url"));
		//封装参数
		alipayRequest.setBizContent(JSON.toJSONString(alipayBean));
		//3、请求支付宝进行付款，并获取支付结果
		String result = alipayClient.pageExecute(alipayRequest).getBody();
		//返回付款信息
		return result;

	}
}




